Multi-thread decoding of encoded video information may be performed with different threads. For example, when the encoded video information has been encoded according to a particular video codec standard, the decoding tools that may be used to perform decoding tasks are designed to meet hardware constraints, usage constraints, or other criteria
A decoding thread for a current macro block or coding unit may depend on one or more other decoding threads for the current macro block or coding unit and/or, one or more other macro block or coding unit. For example, preliminary analysis of thread dependencies is performed, and the dependencies are updated during process of decoding to allow accurate determination of which threads are currently executable or “runnable.” A thread is considered to be runnable, for example, if its completion does not depend on any other uncompleted threads. In this example, the decoding threads may generally consume a lot of power especially in a software scoreboard-based approach where software polling is utilized to verify the completed/uncompleted tasks.
As such, there is a need to address various concerns about power reduction during the decoding process.